const { URL, routes} = require("/util/router")
const product = require("/api/product")
const user = require("/api/user")
const order = require("/api/order")
const other = require("/api/other")
import { compareVersions } from 'compare-versions'
import'umtrack-alipay';
import config from '/util/config'


const { version } = my.getSystemInfoSync()
if (compareVersions(version, '10.1.85') < 0) {
  my.ap && my.ap.updateAlipayClient && my.ap.updateAlipayClient();
}

// if (!my.canIUse('plugin') && !my.isIDE) {
//   my.ap && my.ap.updateAlipayClient && my.ap.updateAlipayClient();
// }


App({
    // 数据接口
    product: product,  // 商品接口
    user: user,  // 商品接口
    order: order,  // 订单接口
    other: other,  // 其他页面接口
    goPageNum : 0, 
    categorySta: false,
    minType: 0,
    requireUrl: 1,
    config: config.thisconfig,
    thisName: config.thisconfig.thisName, 
    // 友盟
    umengConfig:{
      appKey: config.thisconfig.appKey,
      debug:true,
      uploadUserInfo:true,
      enableVerify:true
    },
    globalData:{
        number: config.thisconfig.phoneNum, // 平台手机号
        userlocation:null,
        planePhone: config.thisconfig.planePhone,
        query: {}
    },
    


    onLaunch(options) {
      this.globalData.query = options.query || {};
      // let con = JSON.stringify(options);
      // my.showToast({
      //   content: con,
      //   duration: 8000
      // })

      if(this.globalData.query.minType){
        this.minType = this.globalData.query.minType
      }

      if(options.query && options.query.beFromNum == 1){
        user.accessCount()
        .then((res=>{

        }))
      }
    },
    onShow() {},

    // 小程序更新问题
    UpdateApp(){
        const updateManager = my.getUpdateManager()
        updateManager.onCheckForUpdate(function (res) {  // 请求完新版本信息的回调  
            // console.log("======>>版本信息hasUpdate", res)
        })
        updateManager.onUpdateReady(function () {
            my.confirm({
                title: '更新提示',
                content: '新版本已经准备好，是否重启应用？',
                success: function (res) {
                    if (res.confirm) {        // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                        updateManager.applyUpdate()
                    }
                }
            })
        })
        updateManager.onUpdateFailed(function () {  
            // 新版本下载失败
        })
    },


    // 封装  ： 获取地理位置
    getLocation(){
        let that = this
        my.getLocation({
            type:1,
            success(res) {
                // console.log("=====================>>获取地理位置")
                // console.log(res)
                that.globalData.userlocation = `${res.province}-${res.city}-${res.district}`;
                that.globalData.longitude = res.longitude;
                that.globalData.latitude = res.latitude;
            },
            fail() {
                my.confirm({
                    title: '温馨提示',
                    content: '未开启位置信息，为了给你提供更优质 \n 的服务，请开启GPS位置信息并授权',    
                    confirmButtonText: '已开启',
                    cancelButtonText: '暂不需要',
                    success: (result) => {
                        if(result.confirm) {
                            that.getLocation()
                        }else {
                            that.globalData.userlocation = that.globalData.userlocation || '用户拒绝访问当前地址'
                            // 用户拒绝
                        }
                    },
                });
            },
        })
    },

    // 支付
    alipay(data){
        return new Promise((resolve,reject)=>{
            my.tradePay({
                tradeNO: data,
                success: function (res) {
                    console.log(res)
                    if (res.resultCode == 9000) {
                        resolve(res)
                    } else {
                        reject(res)
                    }
                },
            });

        })
    },

    // 设置路由
    _init_(that){
        that.setData({
            url: URL
        }) 
    },

    // 跳转
    navigateTo(e) {
        routes.navigateTo(e.target.dataset);
    },

});
